As is known in the art, large mainframe computer systems and data servers sometimes require large capacity data storage systems. One type of data storage system is a magnetic disk storage system. Here a bank of disk drives and the computer systems and data servers are coupled together through an interface. The interface includes CPU controllers, commonly referred to as storage processors (SPs), which operate in such a way that they are transparent to the computer. Typically a pair of such processors is used for redundancy. That is, data is stored in, and retrieved from, the bank of disk drives in such a way that the mainframe computer system or data server merely thinks it is operating with one mainframe memory. One type of data storage system is a RAID data storage system. A RAID data storage system includes two or more disk drives in combination for fault tolerance and performance.
As is also known in the art, it is sometimes desirable that the data storage capacity of the data storage system be expandable. More particularly, a customer may initially require a particular data storage capacity. As the customer's business expands, it would be desirable to expand the corresponding data storage capacity of the purchased storage system.
One such data storage system is shown in FIG. 1 to include an interface coupled between a host computer/server and a bank of disk drives. The interface includes, in this example, a pair of vertical, rack mounted storage processors (SPA) and (SPB) interconnected though a printed circuit board, such as a printed circuit board or backplane. Each SP is coupled to the host computer/server and/or bank of disk drives through an IO card. It is noted that with the interface shown in FIG. 1, each SP has plugged into it a pair of front mounted IO cards. The interface also includes a pair of remote IO cards for connection to the host computer/server; remote in the sense that remote IO cards, here designated as remote annex IO cards, are displaced in position from the SP and hence do not plug directly into the SP but connect the SP through the backplane. That is, the remote annex IO cards are physically remote from the SP are therefore connected to the SP through the printed circuit board. It is noted that connections to the host computer/server are referred to as front end connections and connections to the bank of disk drives are referred to as back end connections.
Each one of the pair of remote annex IO cards is connected to a corresponding one of the pair of SPs. However, as noted above, the remote annex IO card A is connected, through the printed circuit board, to SPA and remote annex IO card B is connected, through the printed circuit board, to SPB. The connections of an exemplary one of the SPs, here SPA is shown in FIG. 2. It is noted that there are a limited number of discrete signals to use for status (i.e., Insert, Power Good, Reset, Power Enable, etc) reporting back from the IO card to the Storage Processor. Here, in the arrangement shown in FIG. 2, each IO card has four pins, one for the each of the status signals: Insert (indicating to the SP that the IO card has been inserted into the SP); Power Good (indicating to the SP that the power on the IO card is proper); Reset from the SP to reset (i.e., reboot the IO card); and Power Enable from the SP to enable power for the IO card. The same signals are used for the remote annex IO card. While the four status signals are passed directly between the pair of IO cards and a reset microcontroller of the SP (since the two IO cards are plugged into the SP), the status signals between the remote annex IO card and the SP are through the printed circuit board because, as shown in FIG. 1, the remote annex IO card, unlike the IO cards, are not behind the SP.
It is noted in FIG. 2 that the SP includes a CPU complex that communicates with the reset microcontroller on the SP and a microcontroller on the remote annex IO card through an I2C (Inter-Intergrated Circuit) interconnect. The card includes a power monitor and control circuit which receives the power enable signal from the SP through the printed circuit board and reports whether or not the power on the remote annex IO card to the SP though the printed circuit board. The insert signal is produced by a microcontroller on the remote annex IO card to the reset microcontroller in the SP through the printed circuit board, and such microcontroller receives a reset (or boot) signal from the SP through the printed circuit board. The signals on the I2C interconnect provide environmental data, such as temperature, to the CPU complex on the SP.
It is noted that the presence or absence of an IO card is detectable by the SP through an inserted signal sent to the SP by the IO card. This, inserted signal is useful in adapting the system to hot pluggable/hot removable IO cards. It is also noted that the remote annex card has its inserted signal fed to the SP through a single line in the printed circuit board.
While the system described above in connection with FIGS. 1 and 2 are useful with system having one remote IO card, it would be desirable to expand the number of remote IO cards that communicate to the SP without requiring changes to the printed circuit board, particularly to the number of pins used on the printed circuit board. It is also desirable that each one of the remote IO cards be hot pluggable/hot removable. Thus, in order for the system to operate with a plurality of hot pluggable/hot removable remote IO card, the reset microcontroller on the SP would have to receive some kind of signal to know whether any one of the pluralities of remote IO cards has supplied an inserted signal. However, the addition of pins for more than one remote IO card is not available in the printed circuit board.